home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / basic / udpchat / udpfuncs.bb2 < prev    next >
Unknown  |  1999-05-14  |  5.5 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% gt2 Kopftext: ';-----------------------------------------------------------' default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;-------|--------|
|00000010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 00 3b 20 20 |--------|----.; |
|00000040| 20 20 20 20 20 20 20 20 | 20 20 20 20 55 44 50 5f | | UDP_|
|00000050| 46 75 6e 63 73 20 20 56 | 31 2e 34 20 20 32 33 2f |Funcs V|1.4 23/|
|00000060| 30 34 2f 39 39 20 62 61 | 73 65 64 20 6f 6e 00 3b |04/99 ba|sed on.;|
|00000070| 20 53 74 61 6e 64 61 72 | 64 20 42 6c 69 74 7a 20 | Standar|d Blitz |
|00000080| 54 43 50 20 46 75 6e 63 | 74 69 6f 6e 73 20 56 31 |TCP Func|tions V1|
|00000090| 2e 35 20 62 79 20 50 61 | 75 6c 20 42 75 72 6b 65 |.5 by Pa|ul Burke|
|000000a0| 79 20 28 63 29 31 39 39 | 37 00 3b 20 43 6f 6d 70 |y (c)199|7.; Comp|
|000000b0| 69 6c 65 64 20 77 69 74 | 68 20 68 65 6c 70 20 66 |iled wit|h help f|
|000000c0| 72 6f 6d 20 45 72 63 6f | 6c 65 20 53 70 69 74 65 |rom Erco|le Spite|
|000000d0| 72 69 20 61 6e 64 20 41 | 6e 74 6f 6e 20 52 65 69 |ri and A|nton Rei|
|000000e0| 6e 61 75 65 72 00 3b 20 | 59 6f 75 20 6d 75 73 74 |nauer.; |You must|
|000000f0| 20 68 61 76 65 20 74 68 | 65 20 62 73 64 73 6f 63 | have th|e bsdsoc|
|00000100| 6b 65 74 2e 6c 69 62 72 | 61 72 79 20 73 65 74 75 |ket.libr|ary setu|
|00000110| 70 20 69 6e 20 42 6c 69 | 74 7a 00 3b 20 20 20 62 |p in Bli|tz.; b|
|00000120| 79 20 41 6e 74 6f 6e 20 | 52 65 69 6e 61 75 65 72 |y Anton |Reinauer|
|00000130| 20 61 6e 74 6f 6e 40 77 | 77 2e 63 6f 2e 6e 7a 00 | anton@w|w.co.nz.|
|00000140| 3b 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;-------|--------|
|00000150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000160| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000170| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 00 00 3b 2d |--------|----..;-|
|00000180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001a0| 00 3b 20 53 74 61 6e 64 | 61 72 64 20 55 44 50 20 |.; Stand|ard UDP |
|000001b0| 42 6c 69 74 7a 20 46 75 | 6e 63 74 69 6f 6e 73 00 |Blitz Fu|nctions.|
|000001c0| 3b 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;-------|--------|
|000001d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001e0| 2d 2d 00 00 2e 47 65 74 | 5f 48 6f 73 74 5f 42 79 |--...Get|_Host_By|
|000001f0| 5f 4e 61 6d 65 20 20 20 | 20 20 20 20 20 3b 20 67 |_Name | ; g|
|00000200| 65 74 20 61 20 68 6f 73 | 74 20 73 74 72 75 63 74 |et a hos|t struct|
|00000210| 75 72 65 20 62 79 20 6e | 61 6d 65 20 28 69 66 20 |ure by n|ame (if |
|00000220| 65 78 69 73 74 73 29 2c | 20 66 72 6f 6d 20 61 20 |exists),| from a |
|00000230| 6e 61 6d 65 20 73 65 72 | 76 65 72 00 80 09 20 47 |name ser|ver... G|
|00000240| 65 74 5f 48 6f 73 74 5f | 42 79 5f 4e 61 6d 65 7b |et_Host_|By_Name{|
|00000250| 68 6f 73 74 24 2c 70 6f | 72 74 2e 77 2c 70 6c 61 |host$,po|rt.w,pla|
|00000260| 79 65 72 7d 00 20 20 80 | 15 20 68 6f 73 74 28 29 |yer}. .|. host()|
|00000270| 2c 68 6f 73 74 6c 65 6e | 28 29 00 00 20 20 2a 61 |,hostlen|().. *a|
|00000280| 2e 68 6f 73 74 65 6e 74 | 3d ec 9f 28 68 6f 73 74 |.hostent|=..(host|
|00000290| 24 29 20 20 20 20 20 3b | 20 73 65 74 20 75 70 20 |$) ;| set up |
|000002a0| 64 65 73 74 69 6e 61 74 | 69 6f 6e 20 61 64 64 72 |destinat|ion addr|
|000002b0| 65 73 73 20 74 6f 20 73 | 65 6e 64 20 70 61 63 6b |ess to s|end pack|
|000002c0| 65 74 73 20 74 6f 00 20 | 20 80 0b 20 2a 61 2e 68 |ets to. | .. *a.h|
|000002d0| 6f 73 74 65 6e 74 3d 30 | 00 20 20 20 20 53 65 63 |ostent=0|. Sec|
|000002e0| 75 72 69 74 79 5f 57 61 | 72 6e 69 6e 67 7b 22 43 |urity_Wa|rning{"C|
|000002f0| 6f 75 6c 64 6e 27 74 20 | 67 65 74 20 4c 6f 63 61 |ouldn't |get Loca|
|00000300| 6c 68 6f 73 74 20 6e 61 | 6d 65 21 22 2c 23 48 49 |lhost na|me!",#HI|
|00000310| 47 48 7d 00 20 20 20 20 | 80 09 20 80 07 20 bc 0f |GH}. |.. .. ..|
|00000320| 00 20 20 80 c0 00 00 20 | 20 3b 43 6f 70 79 20 44 |. .... | ;Copy D|
|00000330| 65 74 61 69 6c 73 20 74 | 6f 20 6f 75 72 20 53 6f |etails t|o our So|
|00000340| 63 6b 61 64 64 72 69 6e | 20 73 74 72 75 63 74 75 |ckaddrin| structu|
|00000350| 72 65 00 00 20 20 62 62 | 3d fe db 28 2a 61 2e 68 |re.. bb|=..(*a.h|
|00000360| 6f 73 74 65 6e 74 5c 68 | 5f 61 64 64 72 5f 6c 69 |ostent\h|_addr_li|
|00000370| 73 74 5c 49 74 65 6d 41 | 2c 26 68 6f 73 74 28 70 |st\ItemA|,&host(p|
|00000380| 6c 61 79 65 72 29 5c 73 | 69 6e 5f 61 64 64 72 2c |layer)\s|in_addr,|
|00000390| 2a 61 2e 68 6f 73 74 65 | 6e 74 5c 68 5f 6c 65 6e |*a.hoste|nt\h_len|
|000003a0| 67 74 68 29 00 00 20 20 | 68 6f 73 74 28 70 6c 61 |gth).. |host(pla|
|000003b0| 79 65 72 29 5c 73 69 6e | 5f 70 6f 72 74 3d 70 6f |yer)\sin|_port=po|
|000003c0| 72 74 20 20 20 20 20 20 | 20 3b 53 65 74 20 70 6f |rt | ;Set po|
|000003d0| 72 74 20 6e 75 6d 62 65 | 72 00 20 20 68 6f 73 74 |rt numbe|r. host|
|000003e0| 28 70 6c 61 79 65 72 29 | 5c 73 69 6e 5f 66 61 6d |(player)|\sin_fam|
|000003f0| 69 6c 79 3d 32 20 20 20 | 20 20 20 20 20 3b 53 65 |ily=2 | ;Se|
|00000400| 74 20 74 79 70 65 20 74 | 6f 20 41 54 5f 49 4e 45 |t type t|o AT_INE|
|00000410| 54 00 20 20 68 6f 73 74 | 6c 65 6e 28 70 6c 61 79 |T. host|len(play|
|00000420| 65 72 29 3d 80 2f 2e 73 | 6f 63 6b 61 64 64 72 69 |er)=./.s|ockaddri|
|00000430| 6e 20 20 20 20 20 20 20 | 20 3b 47 65 74 20 6c 65 |n | ;Get le|
|00000440| 6e 67 74 68 20 6f 66 20 | 73 74 72 75 63 74 75 72 |ngth of |structur|
|00000450| 65 20 73 6f 63 6b 61 64 | 64 72 69 6e 00 00 20 20 |e sockad|drin.. |
|00000460| 80 09 20 80 07 20 bc 0e | 00 80 02 20 80 09 00 00 |.. .. ..|... ....|
|00000470| 2e 47 65 74 5f 48 6f 73 | 74 5f 42 79 5f 41 64 64 |.Get_Hos|t_By_Add|
|00000480| 72 65 73 73 20 20 20 20 | 20 20 3b 20 67 65 74 20 |ress | ; get |
|00000490| 61 20 68 6f 73 74 20 73 | 74 72 75 63 74 75 72 65 |a host s|tructure|
|000004a0| 20 62 79 20 61 64 64 72 | 65 73 73 20 28 69 66 20 | by addr|ess (if |
|000004b0| 65 78 69 73 74 73 29 2c | 20 66 72 6f 6d 20 61 20 |exists),| from a |
|000004c0| 6e 61 6d 65 20 73 65 72 | 76 65 72 00 80 09 2e 62 |name ser|ver....b|
|000004d0| 20 47 65 74 5f 48 6f 73 | 74 5f 42 79 5f 41 64 64 | Get_Hos|t_By_Add|
|000004e0| 72 65 73 73 7b 61 64 64 | 72 65 73 73 2e 6c 2c 70 |ress{add|ress.l,p|
|000004f0| 6f 72 74 2c 70 6c 61 79 | 65 72 7d 00 20 20 80 15 |ort,play|er}. ..|
|00000500| 20 68 6f 73 74 28 29 2c | 68 6f 73 74 6c 65 6e 28 | host(),|hostlen(|
|00000510| 29 00 00 20 20 2a 61 2e | 68 6f 73 74 65 6e 74 3d |).. *a.|hostent=|
|00000520| ec a0 28 61 64 64 72 65 | 73 73 2c 34 2c 32 29 20 |..(addre|ss,4,2) |
|00000530| 20 3b 20 63 68 65 63 6b | 20 77 65 74 68 65 72 20 | ; check| wether |
|00000540| 68 6f 73 74 20 65 78 69 | 73 74 73 2d 20 77 65 27 |host exi|sts- we'|
|00000550| 72 65 20 6e 6f 74 20 62 | 65 69 6e 67 20 73 68 61 |re not b|eing sha|
|00000560| 6d 6d 65 64 00 00 20 20 | 80 0b 20 2a 61 2e 68 6f |mmed.. |.. *a.ho|
|00000570| 73 74 65 6e 74 3d 30 00 | 20 20 20 20 53 65 63 75 |stent=0.| Secu|
|00000580| 72 69 74 79 5f 57 61 72 | 6e 69 6e 67 7b 22 43 6f |rity_War|ning{"Co|
|00000590| 75 6c 64 6e 27 74 20 67 | 65 74 20 4c 6f 63 61 6c |uldn't g|et Local|
|000005a0| 68 6f 73 74 20 6e 61 6d | 65 21 22 2c 23 48 49 47 |host nam|e!",#HIG|
|000005b0| 48 7d 00 20 20 20 20 80 | 09 20 80 07 20 bc 0f 00 |H}. .|. .. ...|
|000005c0| 20 20 80 c0 00 00 20 20 | 62 62 3d fe db 28 2a 61 | .... |bb=..(*a|
|000005d0| 2e 68 6f 73 74 65 6e 74 | 5c 68 5f 61 64 64 72 5f |.hostent|\h_addr_|
|000005e0| 6c 69 73 74 5c 49 74 65 | 6d 41 2c 26 68 6f 73 74 |list\Ite|mA,&host|
|000005f0| 28 70 6c 61 79 65 72 29 | 5c 73 69 6e 5f 61 64 64 |(player)|\sin_add|
|00000600| 72 2c 2a 61 2e 68 6f 73 | 74 65 6e 74 5c 68 5f 6c |r,*a.hos|tent\h_l|
|00000610| 65 6e 67 74 68 29 20 3b | 20 63 6f 70 79 20 64 65 |ength) ;| copy de|
|00000620| 74 61 69 6c 73 20 74 6f | 20 70 6c 61 79 65 72 27 |tails to| player'|
|00000630| 73 20 68 6f 73 74 00 20 | 20 20 20 20 20 20 20 20 |s host. | |
|00000640| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00000690| 6e 65 77 74 79 70 65 20 | 74 6f 20 68 6f 73 74 00 |newtype |to host.|
|000006a0| 20 20 68 6f 73 74 28 70 | 6c 61 79 65 72 29 5c 73 | host(p|layer)\s|
|000006b0| 69 6e 5f 70 6f 72 74 3d | 70 6f 72 74 20 20 20 20 |in_port=|port |
|000006c0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 53 65 74 20 | | ;Set |
|000006d0| 70 6f 72 74 20 6e 75 6d | 62 65 72 00 20 20 68 6f |port num|ber. ho|
|000006e0| 73 74 28 70 6c 61 79 65 | 72 29 5c 73 69 6e 5f 66 |st(playe|r)\sin_f|
|000006f0| 61 6d 69 6c 79 3d 32 20 | 20 20 20 20 20 20 20 20 |amily=2 | |
|00000700| 20 20 20 20 20 20 20 3b | 53 65 74 20 74 79 70 65 | ;|Set type|
|00000710| 20 74 6f 20 41 54 5f 49 | 4e 45 54 00 20 20 68 6f | to AT_I|NET. ho|
|00000720| 73 74 6c 65 6e 28 70 6c | 61 79 65 72 29 3d 80 2f |stlen(pl|ayer)=./|
|00000730| 2e 73 6f 63 6b 61 64 64 | 72 69 6e 20 20 20 20 20 |.sockadd|rin |
|00000740| 20 20 20 3b 47 65 74 20 | 6c 65 6e 67 74 68 20 6f | ;Get |length o|
|00000750| 66 20 73 74 72 75 63 74 | 75 72 65 20 73 6f 63 6b |f struct|ure sock|
|00000760| 61 64 64 72 69 6e 00 20 | 20 80 09 20 80 07 20 bc |addrin. | .. .. .|
|00000770| 0e 00 80 02 20 80 09 00 | 00 2e 4c 6f 63 61 6c 68 |.... ...|..Localh|
|00000780| 6f 73 74 5f 4e 61 6d 65 | 00 80 09 2e 73 20 4c 6f |ost_Name|....s Lo|
|00000790| 63 61 6c 68 6f 73 74 5f | 4e 61 6d 65 7b 7d 00 20 |calhost_|Name{}. |
|000007a0| 20 20 20 80 0b 20 be 01 | 20 28 30 2c 22 45 4e 56 | .. ..| (0,"ENV|
|000007b0| 3a 48 4f 53 54 4e 41 4d | 45 22 29 00 20 20 20 20 |:HOSTNAM|E"). |
|000007c0| 20 20 20 be 08 20 30 00 | 20 20 20 20 20 20 20 80 | .. 0.| .|
|000007d0| 0c 20 80 89 20 be 0d 28 | 30 29 00 20 20 20 20 20 |. .. ..(|0). |
|000007e0| 20 20 20 20 61 24 3d 61 | 24 2b dd 02 00 20 20 20 | a$=a|$+... |
|000007f0| 20 20 20 20 80 c1 00 20 | 20 20 20 20 20 20 be 02 | ... | ..|
|00000800| 20 30 00 20 20 20 20 20 | 20 20 c5 11 20 30 00 20 | 0. | .. 0. |
|00000810| 20 20 20 20 20 20 80 09 | 20 80 07 20 61 24 00 20 | ..| .. a$. |
|00000820| 20 20 20 80 c0 00 20 20 | 20 20 80 09 20 80 07 20 | ... | .. .. |
|00000830| 22 6c 6f 63 61 6c 68 6f | 73 74 22 00 80 02 20 80 |"localho|st"... .|
|00000840| 09 00 00 2e 49 6e 69 74 | 69 61 6c 69 73 65 5f 55 |....Init|ialise_U|
|00000850| 44 50 00 80 09 20 49 6e | 69 74 69 61 6c 69 73 65 |DP... In|itialise|
|00000860| 5f 55 44 50 7b 70 6f 72 | 74 2e 77 7d 00 20 20 80 |_UDP{por|t.w}. .|
|00000870| 15 20 73 6f 63 6b 2e 6c | 2c 68 6f 73 74 28 29 2c |. sock.l|,host(),|
|00000880| 68 6f 73 74 6c 65 6e 28 | 29 2c 70 6f 72 74 5f 75 |hostlen(|),port_u|
|00000890| 73 65 64 2c 68 6f 73 74 | 6e 61 6d 65 2c 74 63 70 |sed,host|name,tcp|
|000008a0| 5f 73 74 61 63 6b 00 20 | 20 80 15 20 55 44 50 6d |_stack. | .. UDPm|
|000008b0| 65 6d 2e 6c 00 20 20 3b | 00 20 20 3b 20 4f 70 65 |em.l. ;|. ; Ope|
|000008c0| 6e 20 55 44 50 20 73 6f | 63 6b 65 74 20 61 6e 64 |n UDP so|cket and|
|000008d0| 20 62 69 6e 64 20 69 74 | 20 74 6f 20 61 20 70 6f | bind it| to a po|
|000008e0| 72 74 20 6e 75 6d 62 65 | 72 00 20 20 3b 20 52 65 |rt numbe|r. ; Re|
|000008f0| 74 75 72 6e 20 74 72 75 | 65 20 6f 72 20 46 61 6c |turn tru|e or Fal|
|00000900| 73 65 20 69 66 20 73 75 | 63 63 65 73 73 66 75 6c |se if su|ccessful|
|00000910| 20 6f 72 20 6e 6f 74 00 | 20 20 3b 00 00 20 20 80 | or not.| ;.. .|
|00000920| 0b 20 74 63 70 5f 73 74 | 61 63 6b 3d bc 0f 20 20 |. tcp_st|ack=.. |
|00000930| 20 20 3b 20 69 66 20 77 | 65 27 76 65 20 68 61 76 | ; if w|e've hav|
|00000940| 65 6e 27 74 20 61 6c 72 | 65 61 64 79 20 49 6e 69 |en't alr|eady Ini|
|00000950| 74 69 61 6c 69 73 65 64 | 20 55 44 50 00 20 20 20 |tialised| UDP. |
|00000960| 20 80 1c 20 23 4e 4f 5f | 43 4f 4e 4e 45 43 54 49 | .. #NO_|CONNECTI|
|00000970| 4f 4e 3d 31 20 20 20 3b | 20 69 66 20 6e 6f 74 20 |ON=1 ;| if not |
|00000980| 63 6f 6e 6e 65 63 74 65 | 64 20 74 6f 20 74 68 65 |connecte|d to the|
|00000990| 20 60 6e 65 74 2d 20 6a | 75 73 74 20 72 75 6e 6e | `net- j|ust runn|
|000009a0| 69 6e 67 20 6c 6f 63 61 | 6c 6c 79 00 20 20 20 20 |ing loca|lly. |
|000009b0| 20 20 68 6f 73 74 24 3d | 68 6f 73 74 6e 61 6d 65 | host$=|hostname|
|000009c0| 00 20 20 20 20 80 1e 20 | 20 20 20 20 20 20 20 20 |. .. | |
|000009d0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 61 72 65 20 | | ; are |
|000009e0| 63 6f 6e 6e 65 63 74 65 | 64 20 74 6f 20 74 68 65 |connecte|d to the|
|000009f0| 20 6e 65 74 20 6f 72 20 | 68 61 76 65 20 62 65 65 | net or |have bee|
|00000a00| 6e 20 73 69 6e 63 65 20 | 63 6f 6d 70 75 74 65 72 |n since |computer|
|00000a10| 20 77 61 73 20 62 6f 6f | 74 65 64 20 75 70 00 20 | was boo|ted up. |
|00000a20| 20 20 20 20 20 68 6f 73 | 74 24 3d 4c 6f 63 61 6c | hos|t$=Local|
|00000a30| 68 6f 73 74 5f 4e 61 6d | 65 7b 7d 00 20 20 20 20 |host_Nam|e{}. |
|00000a40| 80 1f 00 00 20 20 20 20 | 6c 69 62 2e 6c 3d fe cf |.... |lib.l=..|
|00000a50| 28 22 62 73 64 73 6f 63 | 6b 65 74 2e 6c 69 62 72 |("bsdsoc|ket.libr|
|00000a60| 61 72 79 22 2c 30 29 20 | 20 20 3b 20 63 68 65 63 |ary",0) | ; chec|
|00000a70| 6b 20 74 6f 20 73 65 65 | 20 69 66 20 61 20 54 43 |k to see| if a TC|
|00000a80| 50 2f 49 50 20 73 74 61 | 63 6b 20 69 73 20 72 75 |P/IP sta|ck is ru|
|00000a90| 6e 6e 69 6e 67 00 20 20 | 20 20 80 0b 20 6c 69 62 |nning. | .. lib|
|00000aa0| 3d 30 00 20 20 20 20 20 | 20 53 65 63 75 72 69 74 |=0. | Securit|
|00000ab0| 79 5f 57 61 72 6e 69 6e | 67 7b 22 54 43 50 2f 49 |y_Warnin|g{"TCP/I|
|00000ac0| 50 20 73 74 61 63 6b 20 | 6e 6f 74 20 72 75 6e 6e |P stack |not runn|
|00000ad0| 69 6e 67 21 22 2c 23 48 | 49 47 48 7d 00 20 20 20 |ing!",#H|IGH}. |
|00000ae0| 20 20 20 80 09 20 80 07 | 20 bc 0f 00 20 20 20 20 | .. ..| ... |
|00000af0| 80 22 00 20 20 20 20 20 | 20 fe bb 28 6c 69 62 29 |.". | ..(lib)|
|00000b00| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 63 6c 6f | | ; clo|
|00000b10| 73 65 20 6c 69 62 20 61 | 67 61 69 6e 20 6f 72 20 |se lib a|gain or |
|00000b20| 4d 69 61 6d 69 20 77 6f | 6e 27 74 20 65 78 69 74 |Miami wo|n't exit|
|00000b30| 00 20 20 20 20 20 20 73 | 6f 63 6b 2e 6c 3d ec 81 |. s|ock.l=..|
|00000b40| 28 32 2c 32 2c 30 29 20 | 20 20 20 20 20 20 20 3b |(2,2,0) | ;|
|00000b50| 20 6f 70 65 6e 20 55 44 | 50 20 73 6f 63 6b 65 74 | open UD|P socket|
|00000b60| 00 20 20 20 20 20 20 80 | 0b 20 73 6f 63 6b 3d 2d |. .|. sock=-|
|00000b70| 31 00 20 20 20 20 20 20 | 20 20 53 65 63 75 72 69 |1. | Securi|
|00000b80| 74 79 5f 57 61 72 6e 69 | 6e 67 7b 22 43 6f 75 6c |ty_Warni|ng{"Coul|
|00000b90| 64 6e 27 74 20 6f 70 65 | 6e 20 55 44 50 20 73 6f |dn't ope|n UDP so|
|00000ba0| 63 6b 65 74 21 22 2c 23 | 48 49 47 48 7d 00 20 20 |cket!",#|HIGH}. |
|00000bb0| 20 20 20 20 20 20 80 09 | 20 80 07 20 bc 0f 00 20 | ..| .. ... |
|00000bc0| 20 20 20 20 20 80 22 00 | 20 20 20 20 20 20 20 20 | .".| |
|00000bd0| 80 0b 20 47 65 74 5f 48 | 6f 73 74 5f 42 79 5f 4e |.. Get_H|ost_By_N|
|00000be0| 61 6d 65 7b 68 6f 73 74 | 24 2c 70 6f 72 74 2c 30 |ame{host|$,port,0|
|00000bf0| 7d 3d bc 0f 00 20 20 20 | 20 20 20 20 20 20 20 80 |}=... | .|
|00000c00| 09 20 80 07 20 bc 0f 00 | 20 20 20 20 20 20 20 20 |. .. ...| |
|00000c10| 80 c0 00 20 20 20 20 20 | 20 20 20 74 65 6d 70 3d |... | temp=|
|00000c20| 30 00 20 20 20 20 20 20 | 20 20 70 6f 72 74 5f 75 |0. | port_u|
|00000c30| 73 65 64 3d 70 6f 72 74 | 00 20 20 20 20 20 20 20 |sed=port|. |
|00000c40| 20 80 bb 20 20 20 20 20 | 20 20 3b 20 66 6f 72 20 | .. | ; for |
|00000c50| 74 65 73 74 69 6e 67 20 | 6f 6e 20 6c 6f 63 61 6c |testing |on local|
|00000c60| 68 6f 73 74 2d 20 6b 65 | 65 70 20 74 72 79 69 6e |host- ke|ep tryin|
|00000c70| 67 20 6f 6e 65 20 70 6f | 72 74 20 61 74 20 61 20 |g one po|rt at a |
|00000c80| 74 69 6d 65 20 61 66 74 | 65 72 20 23 4c 4f 43 41 |time aft|er #LOCA|
|00000c90| 4c 50 4f 52 54 20 74 6f | 20 66 69 6e 64 20 61 20 |LPORT to| find a |
|00000ca0| 66 72 65 65 20 70 6f 72 | 74 00 20 20 20 20 20 20 |free por|t. |
|00000cb0| 20 20 20 20 68 6f 73 74 | 28 30 29 5c 73 69 6e 5f | host|(0)\sin_|
|00000cc0| 70 6f 72 74 3d 70 6f 72 | 74 5f 75 73 65 64 00 20 |port=por|t_used. |
|00000cd0| 20 20 20 20 20 20 20 20 | 20 80 0b 20 ec 82 28 73 | | .. ..(s|
|00000ce0| 6f 63 6b 2c 68 6f 73 74 | 28 30 29 2c 68 6f 73 74 |ock,host|(0),host|
|00000cf0| 6c 65 6e 28 30 29 29 3d | 30 20 20 20 20 3b 20 62 |len(0))=|0 ; b|
|00000d00| 69 6e 64 20 73 6f 63 6b | 65 74 20 74 6f 20 70 6f |ind sock|et to po|
|00000d10| 72 74 20 73 6f 20 77 65 | 20 63 61 6e 00 20 20 20 |rt so we| can. |
|00000d20| 20 20 20 20 20 20 20 20 | 20 74 63 70 5f 73 74 61 | | tcp_sta|
|00000d30| 63 6b 3d bc 0e 20 20 20 | 20 20 20 20 20 20 20 20 |ck=.. | |
|00000d40| 20 20 20 20 20 20 20 20 | 20 20 3b 20 6e 6f 74 65 | | ; note|
|00000d50| 20 74 68 61 74 20 77 65 | 20 68 61 76 65 20 69 6e | that we| have in|
|00000d60| 69 74 69 61 6c 69 73 65 | 64 20 74 68 65 20 55 44 |itialise|d the UD|
|00000d70| 50 20 73 6f 63 6b 65 74 | 00 20 20 20 20 20 20 20 |P socket|. |
|00000d80| 20 20 20 20 20 55 44 50 | 6d 65 6d 3d a6 08 28 24 | UDP|mem=..($|
|00000d90| 32 30 30 30 2c 30 29 20 | 20 20 20 20 20 20 3b 41 |2000,0) | ;A|
|00000da0| 6c 6c 6f 63 61 74 65 20 | 74 65 6d 70 20 62 75 66 |llocate |temp buf|
|00000db0| 66 65 72 20 75 73 65 64 | 20 66 6f 72 20 61 6c 6c |fer used| for all|
|00000dc0| 20 55 44 50 20 72 65 61 | 64 73 00 20 20 20 20 20 | UDP rea|ds. |
|00000dd0| 20 20 20 20 20 20 20 80 | 09 20 80 07 20 bc 0e 20 | .|. .. .. |
|00000de0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 72 65 63 65 | | ; rece|
|00000df0| 69 76 65 20 64 61 74 61 | 20 6f 6e 20 70 6f 72 74 |ive data| on port|
|00000e00| 00 20 20 20 20 20 20 20 | 20 20 20 80 22 00 20 20 |. | .". |
|00000e10| 20 20 20 20 20 20 20 20 | 20 20 70 6f 72 74 5f 75 | | port_u|
|00000e20| 73 65 64 2b 31 00 20 20 | 20 20 20 20 20 20 20 20 |sed+1. | |
|00000e30| 20 20 74 65 6d 70 2b 31 | 00 20 20 20 20 20 20 20 | temp+1|. |
|00000e40| 20 20 20 80 c0 00 20 20 | 20 20 20 20 20 20 80 bc | ... | ..|
|00000e50| 20 74 65 6d 70 3d 31 30 | 00 20 20 20 20 20 20 20 | temp=10|. |
|00000e60| 20 53 65 63 75 72 69 74 | 79 5f 57 61 72 6e 69 6e | Securit|y_Warnin|
|00000e70| 67 7b 22 43 6f 75 6c 64 | 6e 27 74 20 42 69 6e 64 |g{"Could|n't Bind|
|00000e80| 20 61 20 55 44 50 20 73 | 6f 63 6b 65 74 21 22 2c | a UDP s|ocket!",|
|00000e90| 23 48 49 47 48 7d 00 20 | 20 20 20 20 20 80 c0 00 |#HIGH}. | ...|
|00000ea0| 20 20 20 20 80 c0 00 20 | 20 80 22 00 20 20 20 20 | ... | .". |
|00000eb0| 80 09 20 80 07 20 bc 0e | 20 20 3b 20 69 66 20 55 |.. .. ..| ; if U|
|00000ec0| 44 50 20 73 6f 63 6b 65 | 74 20 69 73 20 61 6c 72 |DP socke|t is alr|
|00000ed0| 65 61 64 79 20 69 6e 69 | 74 69 61 6c 69 73 65 64 |eady ini|tialised|
|00000ee0| 00 20 20 80 c0 00 20 20 | 80 09 20 80 07 20 bc 0f |. ... |.. .. ..|
|00000ef0| 00 80 02 20 80 09 00 00 | 2e 52 65 61 64 55 44 50 |... ....|.ReadUDP|
|00000f00| 00 80 09 20 2e 73 20 52 | 65 61 64 55 44 50 7b 7d |... .s R|eadUDP{}|
|00000f10| 00 20 20 80 15 20 73 6f | 63 6b 2e 6c 2c 55 44 50 |. .. so|ck.l,UDP|
|00000f20| 6d 65 6d 2e 6c 2c 74 65 | 6d 70 68 6f 73 74 2c 74 |mem.l,te|mphost,t|
|00000f30| 65 6d 70 68 6f 73 74 6c | 65 6e 00 00 20 20 3b 20 |emphostl|en.. ; |
|00000f40| 54 68 69 73 20 46 75 6e | 63 74 69 6f 6e 20 72 65 |This Fun|ction re|
|00000f50| 61 64 73 20 64 61 74 61 | 20 66 72 6f 6d 20 74 68 |ads data| from th|
|00000f60| 65 20 73 6f 63 6b 65 74 | 20 69 74 20 69 73 20 62 |e socket| it is b|
|00000f70| 6f 75 6e 64 20 74 6f 2e | 00 20 20 3b 20 49 66 20 |ound to.|. ; If |
|00000f80| 74 68 65 72 65 20 69 73 | 20 6e 6f 20 6d 65 73 73 |there is| no mess|
|00000f90| 61 67 65 73 20 74 68 65 | 6e 20 69 74 20 77 69 6c |ages the|n it wil|
|00000fa0| 6c 20 72 65 74 75 72 6e | 20 61 6e 20 65 6d 70 74 |l return| an empt|
|00000fb0| 79 20 73 74 72 69 6e 67 | 20 3d 22 22 00 00 20 20 |y string| ="".. |
|00000fc0| 73 6f 63 6b 72 65 61 64 | 2e 6c 3d 30 20 20 20 20 |sockread|.l=0 |
|00000fd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000fe0| 20 20 20 20 20 20 20 20 | 20 20 3b 43 6c 65 61 72 | | ;Clear|
|00000ff0| 20 52 65 61 64 6d 61 73 | 6b 00 20 20 73 6f 63 6b | Readmas|k. sock|
|00001000| 72 65 61 64 2e 6c 20 80 | ce 20 73 6f 63 6b 2e 6c |read.l .|. sock.l|
|00001010| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001020| 20 20 3b 53 65 74 20 52 | 65 61 64 6d 61 73 6b 20 | ;Set R|eadmask |
|00001030| 6f 6e 20 6f 75 72 20 73 | 6f 63 6b 65 74 00 20 20 |on our s|ocket. |
|00001040| 65 3d ec 8f 28 73 6f 63 | 6b 2e 6c 2c 23 46 49 4f |e=..(soc|k.l,#FIO|
|00001050| 4e 52 45 41 44 2c 55 44 | 50 6d 65 6d 2e 6c 29 20 |NREAD,UD|Pmem.l) |
|00001060| 3b 48 6f 77 20 6d 75 63 | 68 20 64 61 74 61 20 69 |;How muc|h data i|
|00001070| 73 20 74 68 65 72 65 3f | 00 20 20 66 2e 6c 3d da |s there?|. f.l=.|
|00001080| 02 2e 6c 28 55 44 50 6d | 65 6d 2e 6c 29 20 20 20 |..l(UDPm|em.l) |
|00001090| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010a0| 20 20 20 3b 50 6c 61 63 | 65 20 76 61 6c 75 65 20 | ;Plac|e value |
|000010b0| 69 6e 20 66 00 00 20 20 | 80 0b 20 66 3e 30 20 20 |in f.. |.. f>0 |
|000010c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010e0| 20 20 3b 20 61 6e 79 20 | 64 61 74 61 20 77 61 69 | ; any |data wai|
|000010f0| 74 69 6e 67 00 20 20 20 | 20 74 65 6d 70 68 6f 73 |ting. | temphos|
|00001100| 74 6c 65 6e 3d 80 2f 20 | 2e 73 6f 63 6b 61 64 64 |tlen=./ |.sockadd|
|00001110| 72 69 6e 00 20 20 20 20 | 63 3d ec 88 28 73 6f 63 |rin. |c=..(soc|
|00001120| 6b 2e 6c 2c 55 44 50 6d | 65 6d 2e 6c 2c 66 2c 30 |k.l,UDPm|em.l,f,0|
|00001130| 2c 74 65 6d 70 68 6f 73 | 74 2c 74 65 6d 70 68 6f |,temphos|t,tempho|
|00001140| 73 74 6c 65 6e 29 20 20 | 3b 52 65 61 64 20 61 6c |stlen) |;Read al|
|00001150| 6c 20 64 61 74 61 20 77 | 61 69 74 69 6e 67 20 6f |l data w|aiting o|
|00001160| 6e 20 73 6f 63 6b 65 74 | 00 20 20 20 20 20 20 20 |n socket|. |
|00001170| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001190| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000011a0| 20 20 20 20 3b 61 6e 64 | 20 67 65 74 20 68 6f 73 | ;and| get hos|
|000011b0| 74 20 69 74 20 77 61 73 | 20 73 65 6e 74 20 66 72 |t it was| sent fr|
|000011c0| 6f 6d 20 69 6e 20 74 65 | 6d 70 68 6f 73 74 00 20 |om in te|mphost. |
|000011d0| 20 20 20 80 0b 20 63 3e | 30 20 20 20 20 3b 20 69 | .. c>|0 ; i|
|000011e0| 66 20 74 68 65 72 65 20 | 61 6e 79 20 64 61 74 61 |f there |any data|
|000011f0| 20 77 61 69 74 69 6e 67 | 00 20 20 20 20 20 20 20 | waiting|. |
|00001200| 20 61 3d 30 20 3a 20 63 | 24 3d 22 22 00 20 20 20 | a=0 : c|$="". |
|00001210| 20 20 20 20 20 80 bb 00 | 20 20 20 20 20 20 20 20 | ...| |
|00001220| 20 20 20 20 63 24 3d 63 | 24 2b dc 86 28 da 02 2e | c$=c|$+..(...|
|00001230| 62 28 55 44 50 6d 65 6d | 2b 61 29 29 20 3a 20 61 |b(UDPmem|+a)) : a|
|00001240| 2b 31 20 20 20 20 3b 20 | 62 75 69 6c 64 20 73 74 |+1 ; |build st|
|00001250| 72 69 6e 67 00 20 20 20 | 20 20 20 20 20 80 bc 20 |ring. | .. |
|00001260| 61 3d 63 00 20 20 20 20 | 80 c0 00 00 20 20 80 c0 |a=c. |.... ..|
|00001270| 00 00 20 20 80 09 20 80 | 07 20 63 24 00 80 02 20 |.. .. .|. c$... |
|00001280| 80 09 00 00 2e 57 72 69 | 74 65 55 44 50 00 80 08 |.....Wri|teUDP...|
|00001290| 20 57 72 69 74 65 55 44 | 50 7b 61 64 2e 6c 2c 73 | WriteUD|P{ad.l,s|
|000012a0| 69 7a 65 2e 77 2c 70 6c | 61 79 65 72 7d 00 20 20 |ize.w,pl|ayer}. |
|000012b0| 80 15 20 73 6f 63 6b 2e | 6c 2c 68 6f 73 74 28 29 |.. sock.|l,host()|
|000012c0| 2c 68 6f 73 74 6c 65 6e | 28 29 2c 74 65 6d 70 68 |,hostlen|(),temph|
|000012d0| 6f 73 74 2c 74 65 6d 70 | 68 6f 73 74 6c 65 6e 00 |ost,temp|hostlen.|
|000012e0| 00 20 20 3b 20 54 68 69 | 73 20 72 6f 75 74 69 6e |. ; Thi|s routin|
|000012f0| 65 20 77 72 69 74 65 73 | 20 64 61 74 61 20 76 69 |e writes| data vi|
|00001300| 61 20 55 44 50 00 00 20 | 20 73 6f 63 6b 77 72 69 |a UDP.. | sockwri|
|00001310| 74 65 2e 6c 3d 30 20 20 | 20 20 20 20 20 20 20 20 |te.l=0 | |
|00001320| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00001330| 43 6c 65 61 72 20 57 72 | 69 74 65 6d 61 73 6b 00 |Clear Wr|itemask.|
|00001340| 20 20 73 6f 63 6b 77 72 | 69 74 65 2e 6c 20 80 ce | sockwr|ite.l ..|
|00001350| 20 73 6f 63 6b 2e 6c 20 | 20 20 20 20 20 20 20 20 | sock.l | |
|00001360| 20 20 20 20 3b 73 65 74 | 20 57 72 69 74 65 6d 61 | ;set| Writema|
|00001370| 73 6b 20 6f 6e 20 6f 75 | 72 20 73 6f 63 6b 65 74 |sk on ou|r socket|
|00001380| 00 20 20 67 3d ec 91 28 | 32 2c 30 2c 26 73 6f 63 |. g=..(|2,0,&soc|
|00001390| 6b 77 72 69 74 65 2e 6c | 2c 30 2c 30 2c 30 29 20 |kwrite.l|,0,0,0) |
|000013a0| 3b 57 61 69 74 20 75 6e | 74 69 6c 20 73 65 72 76 |;Wait un|til serv|
|000013b0| 65 72 20 69 73 20 72 65 | 61 64 79 20 74 6f 20 72 |er is re|ady to r|
|000013c0| 65 61 64 20 6f 75 72 20 | 64 61 74 61 00 00 20 20 |ead our |data.. |
|000013d0| 80 0b 20 70 6c 61 79 65 | 72 3e 30 00 20 20 20 20 |.. playe|r>0. |
|000013e0| 63 3d ec 86 28 73 6f 63 | 6b 2e 6c 2c 61 64 2c 73 |c=..(soc|k.l,ad,s|
|000013f0| 69 7a 65 2c 30 2c 68 6f | 73 74 28 70 6c 61 79 65 |ize,0,ho|st(playe|
|00001400| 72 29 2c 68 6f 73 74 6c | 65 6e 28 70 6c 61 79 65 |r),hostl|en(playe|
|00001410| 72 29 29 20 20 20 20 3b | 53 65 6e 64 20 64 61 74 |r)) ;|Send dat|
|00001420| 61 20 74 6f 20 6f 6e 6c | 69 6e 65 20 68 6f 73 74 |a to onl|ine host|
|00001430| 00 20 20 80 22 00 20 20 | 20 20 63 3d ec 86 28 73 |. .". | c=..(s|
|00001440| 6f 63 6b 2e 6c 2c 61 64 | 2c 73 69 7a 65 2c 30 2c |ock.l,ad|,size,0,|
|00001450| 74 65 6d 70 68 6f 73 74 | 2c 74 65 6d 70 68 6f 73 |temphost|,temphos|
|00001460| 74 6c 65 6e 29 20 20 20 | 20 20 20 20 20 20 20 20 |tlen) | |
|00001470| 20 3b 53 65 6e 64 20 64 | 61 74 61 20 74 6f 20 68 | ;Send d|ata to h|
|00001480| 6f 73 74 20 74 68 61 74 | 27 73 20 6e 6f 74 20 63 |ost that|'s not c|
|00001490| 6f 6e 6e 65 63 74 65 64 | 00 20 20 80 c0 00 80 02 |onnected|. .....|
|000014a0| 20 80 08 00 00 2e 43 6c | 6f 73 65 5f 55 44 50 20 | .....Cl|ose_UDP |
|000014b0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 63 6c 6f 73 | | ; clos|
|000014c0| 65 20 64 6f 77 6e 20 55 | 44 50 20 73 6f 63 6b 65 |e down U|DP socke|
|000014d0| 74 20 61 6e 64 20 72 65 | 61 64 20 62 75 66 66 65 |t and re|ad buffe|
|000014e0| 72 00 80 08 20 43 6c 6f | 73 65 5f 55 44 50 7b 7d |r... Clo|se_UDP{}|
|000014f0| 00 20 20 80 15 20 55 44 | 50 6d 65 6d 2c 73 6f 63 |. .. UD|Pmem,soc|
|00001500| 6b 2e 6c 2c 74 63 70 5f | 73 74 61 63 6b 00 00 20 |k.l,tcp_|stack.. |
|00001510| 20 80 0b 20 55 44 50 6d | 65 6d 3e 30 00 20 20 20 | .. UDPm|em>0. |
|00001520| 20 a6 09 20 55 44 50 6d | 65 6d 2c 24 32 30 30 30 | .. UDPm|em,$2000|
|00001530| 20 20 20 3b 20 66 72 65 | 65 20 55 44 50 20 72 65 | ; fre|e UDP re|
|00001540| 61 64 20 6d 65 6d 6f 72 | 79 20 62 75 66 66 65 72 |ad memor|y buffer|
|00001550| 00 20 20 20 20 55 44 50 | 6d 65 6d 3d 30 00 20 20 |. UDP|mem=0. |
|00001560| 80 c0 00 20 20 80 0b 20 | 73 6f 63 6b 3e 3d 30 20 |... .. |sock>=0 |
|00001570| 20 20 20 20 20 3b 20 69 | 66 20 77 65 27 76 65 20 | ; i|f we've |
|00001580| 73 75 63 63 65 73 73 66 | 75 6c 6c 79 20 6f 70 65 |successf|ully ope|
|00001590| 6e 65 64 20 61 20 73 6f | 63 6b 65 74 20 74 68 65 |ned a so|cket the|
|000015a0| 6e 20 63 6c 6f 73 65 20 | 69 74 00 20 20 20 20 ec |n close |it. .|
|000015b0| 90 28 73 6f 63 6b 29 00 | 20 20 20 20 80 1c 20 23 |.(sock).| .. #|
|000015c0| 43 4f 4d 4d 53 5f 44 45 | 42 55 47 3d 31 00 20 20 |COMMS_DE|BUG=1. |
|000015d0| 20 20 20 20 43 6f 6d 6d | 73 5f 44 65 62 75 67 7b | Comm|s_Debug{|
|000015e0| 22 53 6f 63 6b 65 74 20 | 63 6c 6f 73 65 64 22 2c |"Socket |closed",|
|000015f0| 23 4c 4f 57 7d 00 20 20 | 20 20 80 1f 00 20 20 80 |#LOW}. | ... .|
|00001600| c0 00 20 20 74 63 70 5f | 73 74 61 63 6b 3d bc 0f |.. tcp_|stack=..|
|00001610| 00 80 02 20 80 08 00 00 | 00 |... ....|. |
+--------+-------------------------+-------------------------+--------+--------+